package jmine.tec.persist.schema.impl.elements.type;

/**
 * Interface para objetos que representam valores permitidos para uma coluna.
 * 
 * @author lundberg
 */
public interface AllowedValue extends Comparable<AllowedValue> {

    /**
     * Compara com valor inteiro
     * 
     * @param value value
     * @return int
     */
    int compareInteger(Integer value);

    /**
     * Compara com valor string
     * 
     * @param value value
     * @return int
     */
    int compareString(String value);

    /**
     * Obtém o valor permitido na forma de uma string.
     * 
     * @return String
     */
    String getValue();

    /**
     * Obtém a descrição do valor.
     * 
     * @return String
     */
    String getDescription();
}